/**
 * @param {number[]} nums
 * @return {number}
 */
/* 
为了在时间复杂度 O (log n) 内找到数组中的峰值元素，可以利用二分查找的思想。
由于题目假设数组两端为负无穷，因此数组中必定存在至少一个峰值。

方法思路
二分查找：初始化左右指针分别指向数组的首尾。在每一步中，计算中间索引并比较中间元素与其右侧元素的大小。
判断递增 / 递减趋势：
如果中间元素小于其右侧元素，说明峰值在右侧，更新左指针为中间索引的右侧。
如果中间元素大于其右侧元素，说明峰值在左侧或就是中间元素，更新右指针为中间索引。
终止条件：当左右指针相遇时，即为峰值元素的位置。
*/
var findPeakElement = function (nums) {
  let left = 0;
  let right = nums.length - 1;

  while (left < right) {
    const mid = Math.floor((left + right) / 2);

    if (nums[mid] < nums[mid + 1]) {
      left = mid + 1;
    } else {
      right = mid;
    }
  }

  return left;
};